在Swoole版本>=4.2.10生效
为了统一各个客户端混乱的超时规则, 避免开发者需要处处谨慎设置, 从4.2.10版本开始所有协程客户端统一超时规则如下:
以下配置项可通过Co::set
方法配置, 如
Co::set([
'socket_connect_timeout' => 1,
'socket_timeout' => 5
]);
-
socket_connect_timeout
, 建立socket连接超时时间, 默认为1
(秒) -
socket_timeout
, socket读写操作超时时间, 默认为-1
, 即永不超时
即: 所有协程客户端默认连接超时时间为1s, 其他读写操作若未指定超时时间则永不超时
-1
: 永不超时0
: 不更改超时时间其它大于0的值
: 设置相应秒数的超时定时器, 最大精度为1毫秒
- Co::set => 全局
- 通过set等方法设置的 => 被设置的客户端
- 读写方法的函数传参 => 方法调用的读写操作
文档中旧有的, 与此有出入的超时时间设定规则, 皆以此规则为准
在Swoole中很多PHP官方提供的网络库API也可以协程化变成异步非阻塞IO, 它们的超时时间受default_socket_timeout
配置影响, 开发者可以通过ini_set('default_socket_timeout', 60)
这样来单独设置它, 它的默认值是60.